public class 石头游戏 {
    /*
    你和你的朋友面前有一排石头堆，用一个数组 piles 表示，piles[i] 表示第 i 堆石子有多少个。
    你们轮流拿石头，一次拿一堆，但是只能拿走最左边或者最右边的石头堆。所有石头被拿完后，谁拥有的石头多，谁获胜。
    假设你们都很聪明，由你第一个开始拿，请你写一个算法，输入一个数组 piles，返回你是否能赢（true 或 false）。
    注意，石头的堆的数量为偶数，所以你们两人拿走的堆数一定是相同的。石头的总数为奇数，也就是你们最后不可能拥有相同多的石头，一定有胜负之分。
     */

    public static boolean stoneGame(int[] piles) {
        /*
        假设数组是：1, 2, 9, 4
        分析：
        石头堆数是偶数，石子总数是奇数，这两个条件看似公平实际上却可以用来整人，为什么呢？
        因为你是先手，先手可以通过观察各个石头堆的石头数量，得知奇数堆和偶数堆的石头总和，要么是奇数堆多，要么是偶数堆多
        如果是奇数堆多，先手一开始就要选择奇数，如第一个石头堆得到1，第二个人只能选择2或者4，无论他选择哪个，你都能获得9，因此你获胜

        因此：先手必胜无疑
        */
        return true;
    }

    public static void main(String[] args) {
        System.out.println(stoneGame(new int[]{1,2,9,4}));
    }
}
